﻿using System.Collections;

using UnityEngine;

public class BulletCustom : MonoBehaviour {
	// // 子弹的移动速度
	// private float speed = 0.1f;

	// 攻击力
	private int power = 1;

	// // 初始角度
	// private float angle = 90.0f;

	// // 旋转角
	// private float rotation = 0.1f;

	// // 随更新提升加速度
	// public float acceleration = 0.0f;

	// 持有移动所需属性
	public MoveParam moveParam;

	// 用来更新移动的方式
	// 用来执行更新位置
	// 这是个函数把函数当成一个对象来处理
	private BulletManager.BulletMoveAction moveAction;

	// 被生成时候的位置
	private Vector3 startPos;

	public void SetParams (MoveParam moveParam, BulletManager.BulletMoveAction moveAction) {
		// 初始化 一开始所携带的速度，角度，加速程度等信息
		this.moveParam = moveParam;
		// 登录执行哪种移动方式
		this.moveAction = moveAction;

		// 生成时候的位置
		this.startPos = transform.position;
	}

	public void StartMove ( ) {
		// StartCoroutine (Move ( ));
	}

	void Update ( ) {
		this.moveAction (transform, ref moveParam, startPos);
	}

	// 协程会大量消耗cpu性能慎用
	/*IEnumerator Move ( ) {
		// 对象被销毁时 协程会被停
		while (true) {
			// Debug.Log (this.moveAction);
			if (this.moveAction != null) {

				// Debug.Log ("Move");

			}
			yield return 0;
		}
	}*/
}
